// 读取文本文件的函数
const fs = require('fs').promises;
const XLSX = require('xlsx');

/**
 * 读取文本文件的函数
 * @param {string} filePath - 文件路径
 * @returns {Promise<string|null>} 返回文件内容或null（如果读取失败）
 */
async function readTextFile(filePath) {
  try {
    const content = await fs.readFile(filePath, 'utf8');
    return content;
  } catch (error) {
    console.error('Error reading text file:', error);
    return null;
  }
}

/**
 * 异步读取Excel文件并转换为JSON数据
 * @param {string} filePath - Excel文件路径
 * @param {Object} options - 读取选项，默认包含header:1
 * @returns {Promise<Array|null>} 返回JSON格式的数据或null（如果读取失败）
 */
async function readExcelFile(filePath, options = { header: 1 }) {
  // 异步读取文件内容
  try {
    const fileBuffer = await fs.readFile(filePath);
    const workbook = XLSX.read(fileBuffer, { type: 'buffer' });

    // 获取第一个工作表（Sheet）
    const worksheetName = workbook.SheetNames[0];
    const worksheet = workbook.Sheets[worksheetName];

    // 将工作表转换为JSON对象数组
    const jsonData = XLSX.utils.sheet_to_json(worksheet, options);

    // 返回JSON数据
    return jsonData;
  } catch (error) {
    console.error('Error reading excel file:', error);
    return null;
  }
}

// 导出模块的功能函数
module.exports = {
  readExcelFile,
  readTextFile,
};
